package file

import (
	"io"
	"os"
)

// 将 body 写入到文件，如果文件不存在，则创建；如果存在，则清空原文件后写入。
// 写入后，关闭文件。
func Write(name string, body []byte) (int64, error) {
	return CreateThenWrite(name, func(fd *os.File) (int64, error) {
		n, e := fd.Write(body)
		return int64(n), e
	})
}

// 从 src 读取数据并写入到文件，如果文件不存在，则创建；如果存在，则清空原文件后写入。
func WriteFrom(name string, src io.Reader) (int64, error) {
	return CreateThenWrite(name, func(fd *os.File) (int64, error) { return io.Copy(fd, src) })
}
